'\" t
.\"     Title: git-check-ignore
.\"    Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
.\"      Date: 07/27/2015
.\"    Manual: Git Manual
.\"    Source: Git 2.5.0
.\"  Language: English
.\"
.TH "GIT\-CHECK\-IGNORE" "1" "07/27/2015" "Git 2\&.5\&.0" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-check-ignore \- Debug gitignore / exclude files
.SH "SYNOPSIS"
.sp
.nf
\fIgit check\-ignore\fR [options] pathname\&...
\fIgit check\-ignore\fR [options] \-\-stdin < <list\-of\-paths>
.fi
.sp
.SH "DESCRIPTION"
.sp
For each pathname given via the command\-line or from a file via \-\-stdin, show the pattern from \&.gitignore (or other input files to the exclude mechanism) that decides if the pathname is excluded or included\&. Later patterns within a file take precedence over earlier ones\&.
.sp
By default, tracked files are not shown at all since they are not subject to exclude rules; but see \(oq\-\-no\-index\(cq\&.
.SH "OPTIONS"
.PP
\-q, \-\-quiet
.RS 4
Don\(cqt output anything, just set exit status\&. This is only valid with a single pathname\&.
.RE
.PP
\-v, \-\-verbose
.RS 4
Also output details about the matching pattern (if any) for each given pathname\&.
.RE
.PP
\-\-stdin
.RS 4
Read file names from stdin instead of from the command\-line\&.
.RE
.PP
\-z
.RS 4
The output format is modified to be machine\-parseable (see below)\&. If
\-\-stdin
is also given, input paths are separated with a NUL character instead of a linefeed character\&.
.RE
.PP
\-n, \-\-non\-matching
.RS 4
Show given paths which don\(cqt match any pattern\&. This only makes sense when
\-\-verbose
is enabled, otherwise it would not be possible to distinguish between paths which match a pattern and those which don\(cqt\&.
.RE
.PP
\-\-no\-index
.RS 4
Don\(cqt look in the index when undertaking the checks\&. This can be used to debug why a path became tracked by e\&.g\&.
git add \&.
and was not ignored by the rules as expected by the user or when developing patterns including negation to match a path previously added with
git add \-f\&.
.RE
.SH "OUTPUT"
.sp
By default, any of the given pathnames which match an ignore pattern will be output, one per line\&. If no pattern matches a given path, nothing will be output for that path; this means that path will not be ignored\&.
.sp
If \-\-verbose is specified, the output is a series of lines of the form:
.sp
<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>
.sp
<pathname> is the path of a file being queried, <pattern> is the matching pattern, <source> is the pattern\(cqs source file, and <linenum> is the line number of the pattern within that source\&. If the pattern contained a ! prefix or / suffix, it will be preserved in the output\&. <source> will be an absolute path when referring to the file configured by core\&.excludesFile, or relative to the repository root when referring to \&.git/info/exclude or a per\-directory exclude file\&.
.sp
If \-z is specified, the pathnames in the output are delimited by the null character; if \-\-verbose is also specified then null characters are also used instead of colons and hard tabs:
.sp
<source> <NULL> <linenum> <NULL> <pattern> <NULL> <pathname> <NULL>
.sp
If \-n or \-\-non\-matching are specified, non\-matching pathnames will also be output, in which case all fields in each output record except for <pathname> will be empty\&. This can be useful when running non\-interactively, so that files can be incrementally streamed to STDIN of a long\-running check\-ignore process, and for each of these files, STDOUT will indicate whether that file matched a pattern or not\&. (Without this option, it would be impossible to tell whether the absence of output for a given file meant that it didn\(cqt match any pattern, or that the output hadn\(cqt been generated yet\&.)
.sp
Buffering happens as documented under the GIT_FLUSH option in \fBgit\fR(1)\&. The caller is responsible for avoiding deadlocks caused by overfilling an input buffer or reading from an empty output buffer\&.
.SH "EXIT STATUS"
.PP
0
.RS 4
One or more of the provided paths is ignored\&.
.RE
.PP
1
.RS 4
None of the provided paths are ignored\&.
.RE
.PP
128
.RS 4
A fatal error was encountered\&.
.RE
.SH "SEE ALSO"
.sp
\fBgitignore\fR(5) \fBgitconfig\fR(5) \fBgit-ls-files\fR(1)
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
